<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- 函数声明如果放在if-else的语句中，在ie10及以下的浏览器中会出现问题 -->
    <!-- 函数声明方式在ie10以下中，哪怕是true也会跳到false中的函数声明 -->
    <script>
        // if(true) {
        //     function fn() {
        //         console.log('我是true');
        //     }
        // } else {
        //     function fn() {
        //         console.log('我是false');
        //     }
        // }
        // 在ie10及以下，会输出false
        // fn();
        // if(true) {
        //     var fn = function () {
        //         console.log('我是true');
        //     };
        // } else {
        //     var fn = function () {
        //         console.log('我是false');
        //     };
        // }
        // 函数声明表达式，始终都是true，正确，没有问题
        // fn();
        // 预解析：
        // 变量的声明提前在当前作用域的最前面
        // 函数的声明提前到当前作用域的最前面
        // 变量和函数同名，函数优先
        // 总结：
        // 函数声明和函数表达式区别
        // 1.函数声明会在if else中ie10下出现问题，会直接去else中，不去正确的
        // 2.函数表达式，会发生变量提升，函数声明则不会，因为函数声明没有声明，所以函数表达式要先声明后调用
    </script>
</body>
</html>